package com.vlong.town.service.userRoleRef;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.vlong.town.entity.userRoleRef.UserRoleRef;
import com.vlong.town.mapper.userRoleRef.UserRoleRefMapper;


/**
 * 用户-角色-关联业务接口实现类
 * @author Assassin
 */
@Service
public class UserRoleRefService{

	// Fields

	@Autowired
	private UserRoleRefMapper userRoleRefMapper;// 用户-角色-关联DAO接口

	// Methods

   /**
	* 添加用户-角色-关联
	* @param refId 标识信息-关联Id[主键值]
	* @param orgId 标识信息-机构Id
	* @param userId 关联信息-用户Id
	* @param roleId 关联信息-角色Id
	* @return Long refId 添加后的数据库主键值
	*/
	@Transactional
	public Long add(Long refId, Long orgId, Long userId, Long roleId) {
		// 构造用户-角色-关联参数实体
		UserRoleRef userRoleRef = new UserRoleRef();
		userRoleRef.setRefId(refId);// Set 标识信息-关联Id[主键值]
		userRoleRef.setOrgId(orgId);// Set 标识信息-机构Id
		userRoleRef.setUserId(userId);// Set 关联信息-用户Id
		userRoleRef.setRoleId(roleId);// Set 关联信息-角色Id
		// 调用用户-角色-关联DAO接口
		this.userRoleRefMapper.insert(userRoleRef);
		return userRoleRef.getRefId();
	}

   /**
	* 删除用户-角色-关联
	* @param userId 用户Id
	*/
	@Transactional
	public void delete(Long userId) {
		// 调用用户-角色-关联DAO接口
		this.userRoleRefMapper.delete(userId);
	}
	
	/**
	 * 查询用户-角色-关联
	 * @param userId 用户Id
	 * @return List<UserRoleRef>
	 */
	@Transactional(readOnly = true)
	public List<UserRoleRef> queryList(Long userId) {
		return this.userRoleRefMapper.selectList(userId);
	}

}